package main.java.string;

import java.util.Arrays;

/*
    重载spilt方法
 */
public class SpiltDemo2 {
    public static void main(String[] args) {
        /*
        string[] split(string regex)
        该方法拆分字符串时，如果最开始就是可拆分内容，则会首先拆分出一个"空字符"
        如果遇到两个连续可拆分内容时，他们中间也会拆分出一个"空字符串"
        但是如果默认连续出现可拆分内容，那么之间拆分出的所有空字符串都会被忽略
         */
        //创建一个字符串
        //如果在最开始的位置放置一个 = ，那么拆分出来的数组中，第一个元素就是空字符串
        //如果连续出现两个 = ，那么这两个 = 之间的会有一个空字符串
        //如果末尾连续出现多个 = ，那么这些 = 之间出现的所有空字符串都会被忽略
        String src = "1,2,3,4,5,6,7";
        //拆分字符串
        String[] arr = src.split("=");
        //输出数组
        System.out.println(Arrays.toString(arr));




        /*
            String spilt (Sring )
         */
        //拆分字符串
        String str2 = "a=b=c=d=e=f===========";
        //仅拆分出2项
        String[] arr2 = str2.split("=",2);
        //输出数组
        System.out.println(Arrays.toString(arr2));
        //仅拆分出3项
        arr2 = str2.split("=",3);
        //输出数组
        System.out.println(Arrays.toString(arr2));

        //拆分出20项
        //拆分出20项，当不足时，则保留最多可拆分项（包括原本最后舍弃的空串）
        arr2 = str2.split("=",20);
        //输出数组的长度
        System.out.println(arr2.length);
        //输出数组的内容
        System.out.println(Arrays.toString(arr2));

        //拆分出0项
        arr2 = str2.split("=",0);
        //输出数组长度
        System.out.println(arr2.length);
        //输出数组
        System.out.println(Arrays.toString(arr2));
        //拆分出-1项
        //limit为负数时：应拆尽拆，能拆分出多少就保留多少（包括最后本应舍弃的空字符串）
        arr2 = str2.split("=",-1);
        //输出数组的长度
        System.out.println(arr2.length);
        //输出数组
        System.out.println(Arrays.toString(arr2));
    }
}
